package pocketknife.internal.codegen;
import com.squareup.javapoet.MethodSpec;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
public abstract class MethodBinding {
public abstract List<? extends FieldBinding> getFields();
public abstract Set<KeySpec> getKeys();
public abstract MethodSpec generateMethodSpec(TypeUtil typeUtil);
protected String getReturnVarName(String returnVarNameRoot) {
Set<String> fieldNames = new LinkedHashSet<String>();
for (FieldBinding fieldBinding : getFields()) {
fieldNames.add(fieldBinding.getName());
}
String returnVarName = returnVarNameRoot;
int count = 0;
while (fieldNames.contains(returnVarName)) {
returnVarName = returnVarNameRoot + ++count;
}
return returnVarName;
}
}